Due to advances in computing technology, businesses today are able to operate more efficiently when compared to substantially similar businesses only a few years ago. For example, networking enables employees of a company to communicate instantaneously by email, quickly transfer data files to disparate employees, manipulate data files, share data relevant to a project to reduce duplications in work product, etc. Furthermore, advancements in technology have enabled factory applications to become partially or completely automated. For instance, operations that once required workers to put themselves proximate to heavy machinery and other various hazardous conditions can now be completed at a safe distance therefrom.
Further, imperfections associated with human action have been minimized through employment of highly precise machines. Many of these factory devices supply data related to manufacturing to databases or web services referencing databases that are accessible by system/process/project managers on a factory floor. For instance, sensors and associated software can detect a number of instances that a particular machine has completed an operation given a defined amount of time. Further, data from sensors can be delivered to a processing unit related to system alarms. Utilizing such data, industrial applications are now becoming partially and/or completely automated.
While various advancements have been made with respect to automating an industrial process, utilization and design of controllers has been largely unchanged. In more detail, industrial controllers have been designed to efficiently undertake real-time control. For instance, conventional industrial controllers receive data from sensors and, based upon the received data, control an actuator, drive, or the like. These controllers recognize a source and/or destination of the data by way of a symbol and/or address associated with source and/or destination. More particularly, industrial controllers include communications ports and/or adaptors Sensors, actuators, drives, and the like are communicatively coupled to such ports/adaptors. Thus, a controller can recognize device identity when data is received and further deliver control data to an appropriate device.
Controllers, however, are extremely limited as to their abilities to communicate with associated applications and/or processes. For example, customized and complex mapping software is often needed to enable a programmable logic controller to communicate with an application that is associated with an Enterprise Resource Planning (ERP) system. Monetary costs for assigning an application writing specialist to perform such mapping can be quite large. Additionally, today's controllers typically are not capable of performing asynchronous communications with high-level applications. In other words, the controller and the application must be connected and communicating synchronously to effectuate desirable interaction there between. Such forced synchronization can be problematic when the controller is assigned numerous tasks, many of which are to be performed in real-time. Thus, synchronously communicating with a high-level application can negatively affect other tasks associated with the controller.